package com.guigusuqi.app.mapper;

import com.guigusuqi.app.dto.DeputyCardInfoDTO;
import com.guigusuqi.app.entity.DeputyCard;
import com.guigusuqi.app.entity.PO.UserCardInfo;
import com.guigusuqi.app.entity.UserCard;
import com.guigusuqi.app.entity.WxUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author suqi
 * @since 2022-04-06
 */
public interface WxUserMapper extends BaseMapper<WxUser>
{

    /**
     * 获取用户信息
     * @param openid
     * @return
     */
    WxUser getUserInfoByOpenId(String openid);

    /**
     * 是否是主卡
     * @param openid
     * @return
     */
    List<String> checkUserIsUserCard(String openid);

    /**
     * 获取主卡
     * @param userCardId
     * @return
     */
    UserCard getUserCard(String userCardId);


    //1111111111111111111111
    //1111111111111111111111
    //1111111111111111111111
    //1111111111111111111111
    /**
     * 通过主卡id获取所有副卡和手机号
     * @param userCardId
     * @return
     */
    List<DeputyCardInfoDTO> selectDeputyCardByUserCardId(String userCardId);

    /**
     * 获得副卡id
     * @param phone
     * @return
     */
    List<String> checkUserIsDeputyCard(String phone);

    /**
     * 获取副卡
     * @param deputyCardId
     * @return
     */
    List<DeputyCard> getDeputyCard(String deputyCardId);

    /**
     * 通过副卡号查询主卡号
     * @param phone
     * @return
     */
    UserCard selectUserCardByDeputyCardPhone(String phone);

    /**
     * 通过phone查询主卡是否有这个用户,如果有 返回对应的userCardId
     * @param phone
     * @return
     */
    String selectUserCardByPhone(String phone);

    /**
     * 添加一条用户-会员卡记录
     * @param openid
     * @param userCardId
     */
    void insertUserCard(String openid, String userCardId);


    // 1111111111111111
    /**
     * 通过手机号获取副卡用户名
     * @param phone
     * @return
     */
    String getDeputyCardNameByPhone(String phone);
}
